package ASAExpression;

import exceptions.ExecutionException;

/**
 * Classe representant la comparaison : "inférieur ou égal" 
 * de deux expressions
 * @author D.romain
 * @author O.riad
 */
public class ASAInfEgal extends ASAExpr {
    
    private ASAExpr e1;
    private ASAExpr e2;
    
     /**
     * Constructeur prenant en paramètre
     * deux ASAExpr 
     * @param e1 ASAExpr
     * @param e2 ASAExpr
     */
    public ASAInfEgal(ASAExpr e1, ASAExpr e2) {
        this.e1 = e1;
        this.e2 = e2;
    }
    
    /**
     * Renvoie l'expression de gauche
     * @return ASAExp gauche
     */
    @Override
    public ASAExpr getExpr1() {
        return e1;
    }

    /**
     * Renvoie l'expression de droite
     * @return ASAExp droite
     */
    @Override
    public ASAExpr getExpr2() {
        return e2;
    }
    
    /**
     * Méthode faisant la comparaison
     * entre l'expression de gauche et celle de droite
     * Si expression gauche est plus petite ou égale à celle
     * de droite
     * @return 1 si vrai, 0 sinon
     * @throws ExecutionException 
     */
    @Override
    public int evalue() throws ExecutionException {
        return (this.e1.evalue() <= this.e2.evalue()) ? 1 : 0;
    }
    
    /**
     * Renvoie le resultat de la comparaison sous forme 
     * de chaîne de caractères 
     * @return String resultat de l'évaluation
     * @throws ExecutionException 
     */
    @Override
    public String getLabelExplorateur() throws ExecutionException {
        return "INF EGAL " + this.evalue();
    }
}
